package com.hejing.面向对象特征之三_多态.多态的测试案例;

/**
 * ClassName: GeometricTest
 * Package: com.hejing.面向对象特征之三_多态.多态的测试案例
 * Description:
 *      测试类
 *      编写equalsArea 方法测试两个对象的面积是否相等(注意方法的参数类型)
 *      编写displayGrometricObject方法显示对象的面积(注意方法的参数类型)
 * @Author: HeJing
 * @Create: 2023-03-26 15:49
 * @Version: 1.0
 */
public class GeometricTest {
    public static void main(String[] args) {
        GeometricTest test = new GeometricTest();
        Circle c1 = new Circle("red", 1.0, 2.3);
        c1.name = "圆形";
        Circle c2 = new Circle("yellow", 1.0, 3.3);
        c2.name = "圆形";  // name属性的赋值应该放置到构造器中，此处为了省事就这样做测试了

        MyRectangle r1 = new MyRectangle("black", 1.2, 5.3, 4.2);
        r1.name = "矩形";
        MyRectangle r2 = new MyRectangle("white", 1.0, 4.3, 4.0);
        r2.name = "矩形";

        test.displayGeometricObject(c1);
        test.displayGeometricObject(r1);

        boolean ret = test.equalsArea(c2, r2);
        if(ret) {
            System.out.println(c2.name + "的面积等于" + r2.name + "的面积");
        } else {
            System.out.println(c2.name + "的面积不等于" + r2.name + "的面积");
        }
    }

    /**
     * 显示几何图形的面积
     * @param g: 待显示面积的几何图形
     */
    public void displayGeometricObject(GeometricObject g){
        System.out.println(g.name + "的面积是: " + g.getArea());
    }


    /**
     * 比较两个几何图形的面积是否相等。
     * @param g1 : 几何图形1
     * @param g2 : 集合图形2
     * @return : true or false
     */
    public boolean equalsArea(GeometricObject g1, GeometricObject g2) {
        return g1.getArea() == g2.getArea();
    }


}




















